Une variable est un symbole qui associe un nom (l'identifiant) à une valeur.
La valeur peut être une valeur primitive ou un objet.
true
ou false
Nombres à virgule flottante sur 64 bits.
Deux valeurs spéciales : NaN
(not a number) et Infinity
.
Les chiffres d'un même nombre peuvent être séparés par des tirets bas.
3/0; //Infinity
parseFloat("a"); // NaN
100_000; // 100000
0.1 + 0.2; // ?
La représentation des nombres au format de virgule flottante sur 64 bits ne peut représenter
avec certitude qu'un nombre entre -(2^53-1) et 2^53 -1.
Au delà on peut utiliser les primitives bigint
en ajoutant un n à la fin d'un littéral d'entier.
const plusGrandEntier = 9007199254740991n;
Délimitée indiféremment par des apostrophes (simple quote) ou des guillemets (double quote).
"toto";
'toto';
Délimitée par des guillements obliques, la chaîne peut être écrite sur plusieurs lignes et intégrer des expressions.
let nom = "Toto";
alert(`Bonjour ${nom},
comment vas-tu ?`);
\b |
Retour arrière |
\f |
Saut de page |
\n |
Nouvelle ligne |
\r |
Retour chariot |
\t |
Tabulation |
\v |
Tabulation verticale |
\' |
Apostrophe ou guillemet droit simple |
\" |
Guillemet droit double |
\\ |
Barre oblique inversée |
\XXX |
Caractère Latin-1 spécifié par, au plus, 3 chiffres octaux entre 0 et 377. |
\xXX |
Caractère Latin-1 spécifié par 2 chiffres hexadécimaux entre 00 et FF. |
\uXXXX |
Caractère Unicode spécifié par 4 chiffres hexadécimaux. |
let toto;
toto; //undefined
undefined
soit manipulable, il est déconseillé de la faire apparaître dans le code.
let toto = "toto";
toto = undefined; // à éviter
let toto = null;
Valeur unique et immuable qui peut être utilisée comme clé d'une propriété d'un objet.
let sym = Symbol("toto");
let obj = {};
obj[sym] = "titi";
=> Utilisation avancée de javascript.
let tata; //déclaration
let toto = "titi"; //déclaration + affectation
let titi, tutu; //déclaration de 2 variables avec un seul mot clé let.
toto; // "titi"
titi; // undefined
tutu; // undefined
Les variables se déclarent de préférence avec le mot clé let
En dehors des modules et du mode strict, définir une variable sans mot clé revient à la définir comme globale.
function maFonction() {
toto = "titi";
}
maFonction();
toto; // titi
let reponse = 42;
reponse = "toto";
let reponse = 42;
reponse = "toto";
_
) ou un dollar ($
)0
à 9
)maVariable
plutôt que ma_variable
let maVariable = new MonConstructeur();
break
case
catch
class
const
continue
debugger
default
delete
do
else
enum
*export
extends
finally
for
function
if
implements
*import
in
instanceof
interface
*let
new
package
*private
*protected
*public
*return
static
super
switch
this
throw
try
typeof
var
void
while
with
yield
* réservés en vue de l'évolution de javascript.
En dehors des fonctions, on parle d'espace global.
Les variables définies dans cet espace sont appelées variables globales. Elles sont disponibles pour tout le code contenu dans le document.
Lorsqu'une variable est déclarée dans une fonction, elle est appelée variable locale car elle n'est disponible qu'au sein de cette fonction.
var x = 3;
if (true) {
var x = 2;
x; //2
}
x; //2, pas d'erreur générée
La portée de bloc n'existait pas.
L'écrasement des variables est possible.
let x = 3;
if (true) {
let x = 2;
x; //2
}
x; //3
Le mot clé let
permet la portée de bloc.
const x = 2;
x = 3; //TypeError: invalid assignment to const `x'
const x = 2;
if (true) {
const x = 3;
}
x; //2
const obj = { nom : "Toto", age : 26 };
obj.age = 27; //ok
obj = "toto"; //TypeError: invalid assignment to const 'obj'
Si une instruction attend un type autre que celui de l'opérande, ce dernier est automatiquement converti. Attention aux pièges !
"La réponse est " + 37; // "La réponse est 37"
"37" - 7; // 30
"37" + 7; // "377"